package br.com.model.entidade;

import java.util.Calendar;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

import br.com.arquitetura.entidade.Persistente;


@Entity
@Table(uniqueConstraints = {@UniqueConstraint(columnNames={"email"})})
public class Aluno implements Persistente{
	
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue
	private Long id;
	private String email;
	private String telefone1;
	private String telefone2;
	private String serie;
	
	private String endereco;
	private String cep;
	private String numero;
	private String bairro;
	private String cidade;
	private String estado;
	private String complemento;
	
	
	private String nome_pai;
	private String nome_mae;
	private String sexo;
	private Calendar nascimento;
	private Double renda;
	
	private String identidade;
	private String titulo;
	
	private String pais;
	private String municipio;
	private String estado_naturalidde;
	
	private String doencas;
	private String alergias;
	private Boolean possiu_plano;
	
	private String nome_resp;
	private String cpf_resp;
	private String sexo_resp;
	private Calendar nascimento_resp;
	private String grau_resp;
	private String profissao_resp;
	private String escolaridade_resp;
	private String telefone_resp;
	private String celular_resp;
	private String trabalho_resp;
	private String email_resp;
	
	@OneToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
	private Usuario usuario;
	
	@ManyToOne
	private Escola escola;
	
	@ManyToOne
	private Turma turma;
	
	@OneToMany(mappedBy="aluno")
	private List<Progresso> progressos;
	
	public Turma getTurma() {
		return turma;
	}

	public void setTurma(Turma turma) {
		this.turma = turma;
	}

	public Escola getEscola() {
		return escola;
	}

	public void setEscola(Escola escola) {
		this.escola = escola;
	}

	public Aluno(){
		this.usuario = new Usuario();
	}
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	
	
	

	public List<Progresso> getProgressos() {
		return progressos;
	}

	public void setProgressos(List<Progresso> progressos) {
		this.progressos = progressos;
	}

	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getTelefone1() {
		return telefone1;
	}
	public void setTelefone1(String telefone1) {
		this.telefone1 = telefone1;
	}
	public String getTelefone2() {
		return telefone2;
	}
	public void setTelefone2(String telefone2) {
		this.telefone2 = telefone2;
	}
	public String getEndereco() {
		return endereco;
	}
	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}


	public String getCep() {
		return cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	public String getNumero() {
		return numero;
	}

	public void setNumero(String numero) {
		this.numero = numero;
	}

	public String getBairro() {
		return bairro;
	}

	public void setBairro(String bairro) {
		this.bairro = bairro;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public String getComplemento() {
		return complemento;
	}

	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	public String getNome_pai() {
		return nome_pai;
	}

	public void setNome_pai(String nome_pai) {
		this.nome_pai = nome_pai;
	}

	public String getNome_mae() {
		return nome_mae;
	}

	public void setNome_mae(String nome_mae) {
		this.nome_mae = nome_mae;
	}

	public String getSexo() {
		return sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	public Calendar getNascimento() {
		return nascimento;
	}

	public void setNascimento(Calendar nascimento) {
		this.nascimento = nascimento;
	}

	public Double getRenda() {
		return renda;
	}

	public void setRenda(Double renda) {
		this.renda = renda;
	}

	public String getIdentidade() {
		return identidade;
	}

	public void setIdentidade(String identidade) {
		this.identidade = identidade;
	}

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public String getPais() {
		return pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	public String getMunicipio() {
		return municipio;
	}

	public void setMunicipio(String municipio) {
		this.municipio = municipio;
	}

	public String getEstado_naturalidde() {
		return estado_naturalidde;
	}

	public void setEstado_naturalidde(String estado_naturalidde) {
		this.estado_naturalidde = estado_naturalidde;
	}

	public String getDoencas() {
		return doencas;
	}

	public void setDoencas(String doencas) {
		this.doencas = doencas;
	}

	public String getAlergias() {
		return alergias;
	}

	public void setAlergias(String alergias) {
		this.alergias = alergias;
	}

	public Boolean getPossiu_plano() {
		return possiu_plano;
	}

	public void setPossiu_plano(Boolean possiu_plano) {
		this.possiu_plano = possiu_plano;
	}

	public String getNome_resp() {
		return nome_resp;
	}

	public void setNome_resp(String nome_resp) {
		this.nome_resp = nome_resp;
	}

	public String getCpf_resp() {
		return cpf_resp;
	}

	public void setCpf_resp(String cpf_resp) {
		this.cpf_resp = cpf_resp;
	}

	public String getSexo_resp() {
		return sexo_resp;
	}

	public void setSexo_resp(String sexo_resp) {
		this.sexo_resp = sexo_resp;
	}

	public Calendar getNascimento_resp() {
		return nascimento_resp;
	}

	public void setNascimento_resp(Calendar nascimento_resp) {
		this.nascimento_resp = nascimento_resp;
	}

	public String getGrau_resp() {
		return grau_resp;
	}

	public void setGrau_resp(String grau_resp) {
		this.grau_resp = grau_resp;
	}

	public String getProfissao_resp() {
		return profissao_resp;
	}

	public void setProfissao_resp(String profissao_resp) {
		this.profissao_resp = profissao_resp;
	}

	public String getEscolaridade_resp() {
		return escolaridade_resp;
	}

	public void setEscolaridade_resp(String escolaridade_resp) {
		this.escolaridade_resp = escolaridade_resp;
	}

	public String getTelefone_resp() {
		return telefone_resp;
	}

	public void setTelefone_resp(String telefone_resp) {
		this.telefone_resp = telefone_resp;
	}

	public String getCelular_resp() {
		return celular_resp;
	}

	public void setCelular_resp(String celular_resp) {
		this.celular_resp = celular_resp;
	}

	public String getTrabalho_resp() {
		return trabalho_resp;
	}

	public void setTrabalho_resp(String trabalho_resp) {
		this.trabalho_resp = trabalho_resp;
	}

	public String getEmail_resp() {
		return email_resp;
	}

	public void setEmail_resp(String email_resp) {
		this.email_resp = email_resp;
	}
	
	public String toString() {
		return this.usuario.getNome();
	}

	public String getSerie() {
		return serie;
	}

	public void setSerie(String serie) {
		this.serie = serie;
	}
	
	public void aprovar() {
		if(this.serie.contentEquals("1 Ano - Fundamental")){
			this.serie = "2 Ano - Fundamental";
		}
		if(this.serie.contentEquals("2 Ano - Fundamental")){
			this.serie = "3 Ano - Fundamental";
		}
		if(this.serie.contentEquals("3 Ano - Fundamental")){
			this.serie = "4 Ano - Fundamental";
		}
		if(this.serie.contentEquals("4 Ano - Fundamental")){
			this.serie = "5 Ano - Fundamental";
		}
		if(this.serie.contentEquals("5 Ano - Fundamental")){
			this.serie = "6 Ano - Fundamental";
		}
		if(this.serie.contentEquals("6 Ano - Fundamental")){
			this.serie = "7 Ano - Fundamental";
		}
		if(this.serie.contentEquals("7 Ano - Fundamental")){
			this.serie = "8 Ano - Fundamental";
		}if(this.serie.contentEquals("8 Ano - Fundamental")){
			this.serie = "9 Ano - Fundamental";
		}
		
		if(this.serie.contentEquals("9 Ano - Fundamental")){
			this.serie = "1 Ano - Medio";
		}
		
		if(this.serie.contentEquals("1 Ano - Medio")){
			this.serie = "2 Ano - Medio";
		}
		
		if(this.serie.contentEquals("2 Ano - Medio")){
			this.serie = "3 Ano - Medio";
		}
		
		if(this.serie.contentEquals("3 Ano - Medio")){
			this.serie = "EX - ALUNO";
		}
		
	}
	
}
